﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Controls;
using Elysium.Demo.Configuracion.Empresa;
using Elysium.Demo.PuntoVenta.Transacciones;
using SIIE_ERP.Codigo;

namespace Elysium.Demo.PuntoVenta
{
    /// <summary>
    /// Lógica de interacción para Menu_Configuracion.xaml
    /// </summary>
    public partial class Menu_PuntoVenta : UserControl
    {
        private UsuarioActivo _sesion;
        
        public Menu_PuntoVenta(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
        }

        private void Expander_Catalogos_Expanded(object sender, RoutedEventArgs e)
        {
            if (Expander_Transacciones != null)
                Expander_Transacciones.IsExpanded = false;
            if (Expander_Reportes != null)
                Expander_Reportes.IsExpanded = false;
        }

        private void Expander_Transacciones_Expanded(object sender, RoutedEventArgs e)
        {
            if (Expander_Catalogos != null)
                Expander_Catalogos.IsExpanded = false;
            if (Expander_Reportes != null)
                Expander_Reportes.IsExpanded = false;
        }


        private void Expander_Reportes_Expanded_1(object sender, RoutedEventArgs e)
        {
            if (Expander_Transacciones != null)
                Expander_Transacciones.IsExpanded = false;
            if (Expander_Catalogos != null)
                Expander_Catalogos.IsExpanded = false;
        }

        private void ButtonGrupoClientes_Click(object sender, RoutedEventArgs e)
        {
            Contenedor.Content = new Catalogos.Terminales_Consulta(ref _sesion);
        }

        // Consola
        private void Button_Consola_Click_1(object sender, RoutedEventArgs e)
        {
            if (_sesion.PV_CajaIsOpen == true)
            {
                Contenedor.Content = new Consola_Alta(ref _sesion);
            }
            else
            {
                MessageBox.Show("Para entrar en esta opción debe tener una caja abierta.");
                Contenedor.Content = new Transacciones.AperturaCaja_Alta(ref _sesion, Contenedor);
            }
        }

        // Apertura de caja
        private void ButtonUsuarios_5_Click(object sender, RoutedEventArgs e)
        {
            if (_sesion.PV_CajaIsOpen == true)
            {
                Contenedor.Content = new Consola_Alta(ref _sesion);
            }
            else
            {
                Contenedor.Content = new Transacciones.AperturaCaja_Alta(ref _sesion, Contenedor);
            }
        }
        
        // Entrada de dinero
        private void ButtonUsuarios_3_Click(object sender, RoutedEventArgs e)
        {
            if (_sesion.PV_CajaIsOpen == true)
            {
                Contenedor.Content = new EntradaDinero_Alta(ref _sesion);
            }
            else
            {
                MessageBox.Show("Para entrar en esta opción debe tener una caja abierta.");
            }
        }

        // Consulta de tickets
        private void ButtonUsuarios_2_Click_1(object sender, RoutedEventArgs e)
        {
            Contenedor.Content = new Tickets_Consulta(ref _sesion);
        }

        // Cerrar caja
        private void ButtonUsuarios_6_Click(object sender, RoutedEventArgs e)
        {
            if (_sesion.PV_CajaIsOpen == true)
            {
                Contenedor.Content = new CierreCaja_Alta(ref _sesion);
            }
            else
            {
                MessageBox.Show("Para entrar a esta opción debe tener una caja abierta.");
            }
        }

        // Facturacion
        private void ButtonUsuarios_7_Click(object sender, RoutedEventArgs e)
        {
            Contenedor.Content = new Factura_Alta(ref _sesion);
        }

        // Salida de dinero
        private void ButtonUsuarios_4_Click_1(object sender, RoutedEventArgs e)
        {
            if (_sesion.PV_CajaIsOpen == true)
            {
                Contenedor.Content = new SalidaDinero_Alta(ref _sesion);
            }
            else
            {
                MessageBox.Show("Para entrar a esta opción debe tener una caja abierta.");
            }
        }

        private void Button_Reporte4_Click_1(object sender, RoutedEventArgs e)
        {
            Elysium.Demo.Informes.Seleccion_PuntoVenta_Reimpresion MiReporte = new Informes.Seleccion_PuntoVenta_Reimpresion(ref _sesion, "Informes/Reportes/Operativos/Ventas/Reimpresion.rdlc", true);

            Viewbox MiVB = new Viewbox();
            MiVB.Child = MiReporte;

            Contenedor.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.MaxWidth = 1200;
            Contenedor.MaxHeight = 526;

            Contenedor.Content = MiVB;
        }

        private void Button_Reporte3_Click_1(object sender, RoutedEventArgs e)
        {
            Elysium.Demo.Informes.Seleccion_PuntoVenta_Tickets MiReporte = new Informes.Seleccion_PuntoVenta_Tickets(ref _sesion, "Informes/Reportes/Operativos/Punto_Venta/Tickets_TA.rdlc", true);

            Viewbox MiVB = new Viewbox();
            MiVB.Child = MiReporte;

            Contenedor.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.MaxWidth = 1200;
            Contenedor.MaxHeight = 526;

            Contenedor.Content = MiVB;
        }

        private void Button_Reporte2_Click_1(object sender, RoutedEventArgs e)
        {
            Elysium.Demo.Informes.Seleccion_PuntoVenta_Tickets MiReporte = new Informes.Seleccion_PuntoVenta_Tickets(ref _sesion, "Informes/Reportes/Operativos/Punto_Venta/Tickets.rdlc", true);

            Viewbox MiVB = new Viewbox();
            MiVB.Child = MiReporte;

            Contenedor.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.MaxWidth = 1200;
            Contenedor.MaxHeight = 526;

            Contenedor.Content = MiVB;
        }

        private void Button_Reporte1_Click_1(object sender, RoutedEventArgs e)
        {
            Elysium.Demo.Informes.GenericReport MiReporte = new Informes.GenericReport(ref _sesion, "Informes/Reportes/Operativos/Punto_Venta/Terminales.rdlc", true);

            Viewbox MiVB = new Viewbox();
            MiVB.Child = MiReporte;

            Contenedor.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            Contenedor.MaxWidth = 1200;
            Contenedor.MaxHeight = 526;

            Contenedor.Content = MiVB;
        }        
    }
}



